1. Field of the Invention
The present invention relates to the field of computer systems. More specifically, the present invention relates to methods and apparatuses associated with versioning control of source files processed on computer systems.
2. Background Information
Numerous source control systems/approaches are known in the art. See e.g. U.S. Pat. Nos. 4,558,413, 4,912,637, 5,357,631 and 5,495,610, to name just a few. However, all these source control systems/approaches are designed to serve the conventional paradigm of distribution, which as illustrated in FIG. 1, is vendor centric. That is, the source control systems/approaches are intended to provide versioning control to source files, such as those associated with program products, on the vendors' system or systems. Only the "release" version of a program product source file is converted into object or executable form for distribution to the users, and the conversion process is performed on the vendors' systems.
Under this conventional vendor centric approach to source control and distribution, each program product group or software vendor goes about its development, conversion and distribution with little regard to other program product groups or software vendors, except perhaps performing certain amount of system level testing with a small group of selected program products. As a result, it is not unusual for a user, upon installing a number of program products, to find that the program products are incompatible and may not operate together, or upon applying a fix to one program product, other previously functioning program products or the entire system would fail. Once finding himself/herself in such a predicament, there are few choices available to the user, and furthermore, there are limited tools available for the user to deal with the problems. Often times, the remedial action requires distribution of an entire replacement version, as opposed to merely the "broken" or "offending" parts.
Additionally, the prior art vendor centric approach to source control is also restrictive in fostering program product interoperability. For example, a vendor of a program product requiring minor extension support from another program product of a different vendor would nevertheless require support and close cooperation from the other vendor. As a further example, users of the same program product are often frustrated in their cooperation by virtue of the fact that they operate with different version levels of the vendor's program product.
These problems or disadvantages are especially undesirable in view of the opportunities to offer the ever increasing population of potential users (which are typically novice), an ever increasing array of functionally rich consumer program products for installation and use on their ever more powerful personal computer systems. Thus, an improved approach to software distribution, including a complementary source control system/approach, is desired.